package com.contacto.dao.impl;

import java.util.Collection;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.contacto.dao.ContactoDao;
import com.contacto.domain.Contacto;

@Repository
@Transactional
public class ContactoDaoImpl implements ContactoDao {
	@Autowired
	private SessionFactory sessionFactory;

	public Collection<Contacto> buscarPorNombre(String nombre) {
		Session session = sessionFactory.getCurrentSession();
		Criteria criteria = session.createCriteria(Contacto.class);
		return criteria.add(Restrictions.ilike("nombre", "%" + nombre + "%")).list();
	}

	public void agregar(Contacto contacto) {
		sessionFactory.getCurrentSession().save(contacto);
	}

	public void modificar(Contacto contacto) {
		sessionFactory.getCurrentSession().update(contacto);
	}

	public void eliminar(int id) {
		Session session = sessionFactory.getCurrentSession();
		Contacto contacto = (Contacto) session.get(Contacto.class, id);
		session.delete(contacto);
	}

}
